Processing performance speedup can be achieved through the use of multi-processor architectures in computer systems, including printing systems. Such architectures allow a number of computation threads belonging to one or more processes to execute in parallel across a number of cores or processors, thereby reducing overall execution time.
Print data may be subdivided into a number of regions. The regions may be processed independently in parallel on central processing units (CPUs) and graphics processing units (GPUs). GPUs provide large numbers of parallel processors, allowing a large number of pixels to be processed in parallel.
Print data can also be pre-processed into an intermediate region-based graphical representation which is intermediate between a page description format and a bitmap format, such as a fillmap. The pre-processing of the print data may be done to compress the print data and use less memory, to transfer the print data across a network, or to enable printing of the print data in real time. The intermediate data may be rendered during printing. There are other intermediate region-based representations, such as a planar map, which are often formed using a series of non-overlapping regions.
Just as in regional pixel processing, the regions in the intermediate representation may be rendered in serial, one pixel location at a time, in one region at a time. However, it is usually more efficient to render the regions in parallel (i.e., pixel and region), for instance on GPUs. GPU computing efficiency and throughput is compromised if certain conditions are not met in programming the GPU.